/* 
在commonjs中, 模块暴露就是module.exports的值
module.exports的默认值是空对象
exports是指向默认的模块对象的一个引用变量 => 也就是模块对象的引用

2种暴露方式
  指定新的模块数据   
  向默认模块对象中添加属性或方法
*/
// console.log(module.exports)
// console.log(exports===module.exports)

/* 指定新的模块数据  */
// module.exports = 3  

/* 
向默认模块对象中添加属性或方法
*/
module.exports.a = 'abc'
// module.exports = {}
exports.b = function () {
  console.log('b()')
}

/* 
为什么 exports = 5 不能修改模块数据
原因: 没有修改module.exports的值, 也没改module.exports所指向的对象的内部属性
*/
exports = 5


// const m = {
//   exports: {}
// }
// let exports = m.exports
// m.exports.xxx = value
// exports.xxx = value
// m.exports = value
// exports = value